package com.ruoyi.mes.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.mes.vo.sales.SellOrderVo;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 销售订单对象 sle_order
 *
 * @author CFL
 * @date 2024-05-23
 */
public class SleOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单id */
    private Long id;

    /** 客户id */
    private Long custId;

    /** 产品id */
    private Long proId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderSn;

    /** 订单名称 */
    @Excel(name = "订单名称")
    private String orderName;


    /** 产品名称 */
    @Excel(name = "产品名称")
    private String proName;


    /** 客户名称 */
    @Excel(name = "客户名称")
    private String name;


    /** 产品编码 */
    @Excel(name = "产品编码")
    private String proSn;

    /** 产品数量 */
    @Excel(name = "产品数量")
    private Long orderNumber;

    /** 订单类型;0：销售订单；1：样品订单；2：测试订单 */
    @Excel(name = "订单类型;0：销售订单；1：样品订单；2：测试订单")
    private Integer orderType;

    /** 订单状态;0：已发布计划；1：未发布计划 */
    @Excel(name = "订单状态;0：已发布计划；1：未发布计划")
    private Integer state;

    /** 签订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signDate;

    /** 交货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliverDate;

    /** 逻辑删除(0:存在；1：删除） */
    @Excel(name = "逻辑删除(0:存在；1：删除）")
    private Integer isDeleted;

    /** 创建者(业务员） */
    @Excel(name = "创建者(业务员）")
    private String createdBy;


    /** 需求数量 */
    private Long deviNum;


    /** 单位名称 */
    @Excel(name = "单位名称")
    private String unitName;

    /** 销售订单产品列表 */
    private List<SellOrderVo> proInfoList;


    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;

    /** 更新者 */
    @Excel(name = "更新者")
    private String updatedBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updatedTime;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCustId(Long custId)
    {
        this.custId = custId;
    }

    public Long getCustId()
    {
        return custId;
    }
    public List<SellOrderVo> getProInfoList() {
        return proInfoList;
    }

    public void setProInfoList(List<SellOrderVo> proInfoList) {
        this.proInfoList = proInfoList;
    }
    public void setProId(Long proId)
    {
        this.proId = proId;
    }

    public Long getProId()
    {
        return proId;
    }
    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }
    public void setOrderSn(String orderSn)
    {
        this.orderSn = orderSn;
    }

    public String getOrderSn()
    {
        return orderSn;
    }
    public void setOrderName(String orderName)
    {
        this.orderName = orderName;
    }

    public String getOrderName()
    {
        return orderName;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getProSn() {
        return proSn;
    }

    public void setProSn(String proSn) {
        this.proSn = proSn;
    }
    public void setOrderNumber(Long orderNumber)
    {
        this.orderNumber = orderNumber;
    }

    public Long getOrderNumber()
    {
        return orderNumber;
    }
    public void setOrderType(Integer orderType)
    {
        this.orderType = orderType;
    }

    public Integer getOrderType()
    {
        return orderType;
    }
    public void setState(Integer state)
    {
        this.state = state;
    }

    public Integer getState()
    {
        return state;
    }
    public void setSignDate(Date signDate)
    {
        this.signDate = signDate;
    }

    public Date getSignDate()
    {
        return signDate;
    }
    public void setDeliverDate(Date deliverDate)
    {
        this.deliverDate = deliverDate;
    }

    public Date getDeliverDate()
    {
        return deliverDate;
    }
    public void setIsDeleted(Integer isDeleted)
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted()
    {
        return isDeleted;
    }
    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy()
    {
        return createdBy;
    }
    public void setCreatedTime(Date createdTime)
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime()
    {
        return createdTime;
    }
    public void setUpdatedBy(String updatedBy)
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy()
    {
        return updatedBy;
    }
    public void setUpdatedTime(Date updatedTime)
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime()
    {
        return updatedTime;
    }
    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }
    public Long getDeviNum() {
        return deviNum;
    }

    public void setDeviNum(Long deviNum) {
        this.deviNum = deviNum;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("custId", getCustId())
                .append("proId", getProId())
                .append("orderSn", getOrderSn())
                .append("orderName", getOrderName())
                .append("orderNumber", getOrderNumber())
                .append("orderType", getOrderType())
                .append("state", getState())
                .append("signDate", getSignDate())
                .append("deliverDate", getDeliverDate())
                .append("isDeleted", getIsDeleted())
                .append("createdBy", getCreatedBy())
                .append("createdTime", getCreatedTime())
                .append("updatedBy", getUpdatedBy())
                .append("name",getName())
                .append("deviNum",getDeviNum())
                .append("proName",getProName())
                .append("updatedTime", getUpdatedTime())
                .append("unitName",getUnitName())
                .append("remark", getRemark())
                .append("proSn",getProSn())
                .toString();
    }
}
